#ifndef SCENEMANAGER_H_
#define SCENEMANAGER_H_

#include "../GameObject/GameObject.h"
#include "../GameObject/ComponentsUpdater.h"
#include "../Physics/PhysicsComponentsUpdater.h"

#include <string>
#include <list>

namespace Pantsu {
	
	class SceneManager {

	public:
		SceneManager( char *i_scnmgr_id );
		virtual ~SceneManager();

		PhysicsComponentsUpdater *GetPhysicsManager() {
			return m_pPhysicsComponentsUpdater;
		}

		ComponentsUpdater *GetRenderComponentManager() {
			return m_pRenderComponentsUpdater;
		}
	
	public:
		GameObject *CreateGameObject( const std::string &i_id );
		
		void Update();
		
	private:
		
	private:
		std::list<GameObject*> m_GameObjects;
		std::list<GameObject*>::iterator m_Itr;

		PhysicsComponentsUpdater *m_pPhysicsComponentsUpdater;
		ComponentsUpdater        *m_pRenderComponentsUpdater;

		char *m_pcSceneManagerId;
	};
}
#endif